/*
 * Copyright 北京航空航天大学  @ 2015 版权所有
 */
package com.buaa.edu.leetcode.algorithm.bits;

/**
 * <p>计算数字1的个数
 * 算法可以推广为
 * A.判断二进制数是否为2的整数倍
 * B.判断二进制表示中一个整数需要多少次变为另一个整数。
 * </p>
 * @author towan
 * @email tongwenzide@163.com
 * @no 191
 * 2015年5月17日
 */
public class NumberOf1Bits {

    public int hammingWeight(int n) {
        int count = 0;
        while(n!=0){
            n &=n-1; //相当于右边的1移动一次
            count++;
        }
        return count;
    }
}
